package Test10;

import java.io.*;
import java.util.Scanner;

public class Test10 {
    public static void main08(String[] args) throws IOException {
        try(OutputStream outputStream=new FileOutputStream("E:\\淮北/test.txt",true) ){
            String s="你好呀，淮北";

            PrintWriter writer=new PrintWriter(outputStream);

            writer.printf("\n%d",98);
            writer.print(s);

            writer.flush();
        }
    }



    public static void main07(String[] args) throws IOException, InterruptedException {

        try(OutputStream outputStream=new FileOutputStream("E:\\淮北/test.txt",true) ){
            String s="你好呀，淮北";
            outputStream.write(98);         // 98 经查表可知是： b
            outputStream.write(s.getBytes());
            outputStream.flush();
/*
            outputStream.write(s.getBytes());
            outputStream.flush();*/
        }
    }













    public static void main(String[] args) throws IOException {
        File file=new File("E:\\淮北/test.txt");

        try(InputStream inputStream=new FileInputStream(file)) {
            while (true) {
                byte[] bt = new byte[3];
                int a = inputStream.read(bt);

                if (a == -1) {
                    break;
                }

                String s=new String(bt,0,a);
                System.out.print(s);

            }
        }

    }






    public static void main04(String[] args) {

/*
        String s=new String(bt,0,a);*/



        File f=new File("E:/淮北");

        // 获取 当前 f目录 下所有的文件名 ， 并以 字符串的形式返回
        String[] s=f.list();
        for(String str : s){
            System.out.println(str);
        }

        // 获取 f对象 下所有的文件 ，并以 File对象 返回
        File[] files=f.listFiles();
        for(File file : files){
            System.out.println(file);
        }

        // 这个是等 整个线程结束了，才会进行删除操作（无返回值）
        //f.deleteOnExit();
    }




    public static void main03(String[] args) throws IOException {
        File f=new File("e:/aaa/test");

        // 判断我们 创建的 file对象 描述的文件是否 真实存在
        boolean b0=f.exists();
        System.out.println(b0);

        // 当我们 创建的 file对象 描述的文件 不存在的时候，我们可以调用这个方法进行构建文件
        // 不过这个方法 存在一些缺陷，只能创建 一层 目录
        boolean b1=f.mkdir();
        System.out.println(b1);

        // 相对于 mkdir 来说，mkdirs 就可以创建多层 目录，因为它在必要条件下就会创建中间目录
        boolean b2=f.mkdirs();
        System.out.println(b2);

        // 根据 file对象 创建一个空文件,
        boolean b3=f.createNewFile();
        System.out.println(b3);

        // 判断 file对象 代表的文件是否是一个目录
        boolean b4=f.isDirectory();
        System.out.println(b4);

        // 判断 file对象 代表的文件是否是一个 普通文件
        boolean b5=f.isFile();
        System.out.println(b5);

        // 删除 file对象 代表的文件
        boolean b6=f.delete();
        System.out.println(b6);
    }










    public static void main01(String[] args) throws IOException {
        // 这里创建的 file对象输入的（相对/绝对）路径 可以 不一定在 你电脑中存在
        File files=new File("e:\\淮北\\aaa\\aaa");
        // 获取 file 对象的父目录 名
        String s=files.getName();
        System.out.println(s);

        // 获取 file对象 的父目录 文件路径
        String s0=files.getParent();
        System.out.println(s0);

        // 获取 file对象 的文件路径
        String s1=files.getPath();
        System.out.println(s1);

        // 获取 file对象 的绝对路径
        String s2=files.getAbsolutePath();
        System.out.println(s2);

        // 获取 file对象 修饰过的相对路径 :
        // 这里看似结果跟 getAbsolutePath() 得到的一样，其实，这跟你创建file对象 给的路径有关
        String s3=files.getCanonicalPath();
        System.out.println(s3);

        // 当我们给一个 相对路径时，就发现，它会帮你 将 . 给优化掉
        File file=new File(".\\ccc");
        System.out.println(file.getAbsolutePath());
        System.out.println(file.getCanonicalPath());

        // 当写了 基准路径的时候
        File file1=new File("e:\\淮北\\aaa\\.\\ccc");
        System.out.println(file1.getAbsolutePath());
        System.out.println(file1.getCanonicalPath());

    }











    public static void main02(String[] args) {
        Scanner in=new Scanner(System.in);
        System.out.println("请输入需要扫描的路径");
        String s=in.next();
        File file=new File(s);
        if(!file.isDirectory()){
            System.out.println("输入错误");
            return ;
        }
        System.out.println("请输入指定字符：");
        String str=in.next();
        findFile(file,str);
    }
    private static void findFile(File file, String str) {
        File[] files=file.listFiles();
        if(files == null){
            return ;
        }
        for(int i=0;i<files.length;i++){
            File f=files[i];
            System.out.println(f.getAbsolutePath());
            if(f.isFile()){
                if(f.getName().contains(str)){
                    System.out.println("是否要删除");
                    Scanner is=new Scanner(System.in);
                    String s=is.next();
                    if(s.toLowerCase().equals("y")){
                        f.delete();
                        System.out.println("删除成功");
                    }else{
                        System.out.println("取消删除");
                    }
                }
            }else{
                findFile(f,str);
            }
        }
    }
}
